package com.clx.chat.service;


import com.clx.common.domain.entity.Message;
import com.clx.common.domain.vo.AjaxResult;

import java.util.List;

/**
 * (Message)表服务接口
 *
 * @author clx
 * @since 2025-02-23 10:12:39
 */
public interface MessageService {
    /**
     * 根据主键查询单个实体
     *
     * @param id 主键
     * @return 对应实体对象
     */
    Message selectMessageById(Long id);

    /**
     * 查询实体列表
     *
     * @param message 实体对象（可作为筛选条件）
     * @return 实体对象集合
     */
    List<Message> selectMessageList(Message message);

    /**
     * 新增实体
     *
     * @param message 要新增的实体对象
     * @return 受影响的行数，新增成功通常返回1，失败返回0等
     */
    int insertMessage(Message message);

    /**
     * 修改实体
     *
     * @param message 要修改的实体对象
     * @return 受影响的行数，一般成功修改返回1
     */
    int updateMessage(Message message);

    /**
     * 批量删除实体
     *
     * @param ids 需要删除的实体主键数组
     * @return 受影响的行数，即成功删除的记录数
     */
    int deleteMessageByIds(Long[] ids);

    /**
     * 删除单个实体（通过主键删除）
     *
     * @param id 主键
     * @return 受影响的行数，成功删除返回1
     */
    int deleteMessageById(Long id);

    /**
     * 查询用户所有的聊天记录
     */
    AjaxResult all(Integer userSelf, Integer userOther);
}
